String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,""); } String.prototype.trimLeft = function() { return this.replace(/^\s+/,""); } String.prototype.trimRight = function() { return this.replace(/\s+$/,""); } //Demos file list (in order of presentation) //THe page name is formed from the file name. var fileList = [ 'Basic_swipe.html', 'Single_swipe.html', 'Any_finger_swipe.html', 'Finger_swipe.html', 'Swipe_status.html', 'Pinch.html', 'Pinch_status.html', 'Pinch_and_Swipe.html', 'Trigger_handlers.html', 'Stop_propagation.html', 'Handlers_and_events.html', 'Tap_vs_swipe.html', 'Hold.html', 'Excluded_children.html', 'Page_zoom.html', 'Thresholds.html', 'Enable_and_destroy.html', 'Page_scrolling.html', 'Options.html', 'Image_gallery_example.html' ]; /** * Builds the demo page */ function init() { buildTitle(); buildCodeExample(); buildNavigation(); } /** * Creates the navigation components */ function buildNavigation() { $('.navigation').each(function( index ) { $(this).html( getNavigation() ); }); $('.navigation_menu').each(function( index ) { $(this).html( getNavigationMenu() ); }) $('.navigation_list').each(function( index ) { $(this).html( getNavigationList() ); }) $('#menu').change( function() { location.href=$(this).val(); }); $('#menu li').click( function() { location.href=$(this).val(); }); $('.example_btn').click( function() { $(document).scrollTop( $("#test").offset().top ); }); $('.events code').click( function() { location.href = '../docs/%24.fn.swipe.html#event:' + $(this).text(); }); $('.properties code').click( function() { location.href = '../docs/%24.fn.swipe.defaults.html#' + $(this).text(); }); $('.methods code').click( function() { location.href = '../docs/%24.fn.swipe.html#' + $(this).text(); }); } /** * Builds the title element */ function buildTitle() { $('.title').each(function( index ) { $(this).html( getTitle() ); }) } /** * Copies the <script> tag contents, and populates the demo pretty print div to display the * code example. */ function buildCodeExample() { $('.prettyprint').each(function( index ) { //$(this).text( $("#"+$(this).attr('data-src')).html() ); var src = $("#"+$(this).attr('data-src')).html(); if(src) { var lines = src.split("\n"); var trimedLines=[]; var trimIndex=null; for (var i=0; i<lines.length; i++) { var line = lines[i]; if(trimIndex===null) { var trimmed = line.trimLeft(); if(line.length>0) { trimIndex = line.length - trimmed.length; } } if(line.length>0) { //Tabs to spaces line = line.replace(/\t/g, ' '); //not using $nbsp; as we want to display HTML tags, so we set the text value, not html trimedLines.push( line.substr(trimIndex) ); } }; var html = trimedLines.join("\n"); $(this).text( html ); } }); //prettyPrint(); } /** * Returns the current file being viewed. */ function getCurrentFile() { var url = window.location.pathname; var file = url.substring(url.lastIndexOf('/')+1); return file; } /** * Returns the current page name */ function getPageName( file ) { if(!file) file=getCurrentFile(); var fileTokens = file.split("_"); var fileName = fileTokens.join(" "); var nameTokens = fileName.split("."); nameTokens.pop(); var name = nameTokens.join(" "); return name; } /** * Writes out the page title template */ function getTitle() { var html = "<h2><a href=\"http://labs.rampinteractive.co.uk/touchSwipe/\">TouchSwipe</a> Demo</h2>"; html += "<h3>to be viewed on touch based devices</h3>"; html += "<h1>"+getPageName()+"<span class='navigation_menu pull-right'></span></h1>"; return html; } /** * Returns HTML mark up for the pagination buttons */ function getNavigation() { var index = fileList.indexOf( getCurrentFile() ); var html ="<div class='pagination'>"; if(index>0) { html += "<a class='pull-left btn' href='"+fileList[index-1]+"'><< "+getPageName(fileList[index-1])+"</a>"; } if(index<fileList.length-1) { html += "<a class='pull-right btn' href='"+fileList[index+1]+"'>"+getPageName(fileList[index+1])+" >></a>"; } html += "</div><div class='clear'></div>" return html; } /** * Returns HTML mark up for the drop down menu */ function getNavigationMenu() { var html = "<select id='menu' class='pull_right'>"; for(var i=0; i<fileList.length; i++) { var selected=""; if(fileList[i] == getCurrentFile()) { selected=' selected '; } html+="<option value='"+fileList[i]+"'"+selected+">"+getPageName(fileList[i])+"</option>"; } html += "</select>"; return html; } /** * Returns HTML mark up for the list menu */ function getNavigationList() { var html = "<ul>"; for(var i=0; i<fileList.length; i++) { html+="<li><a href='"+fileList[i]+"'>"+getPageName(fileList[i])+"</a></li>"; } html += "</ul>"; return html; } $(function() { init(); });